﻿<?php

// 	// 新闻列表
 		/*session_start();
 		$link=mysqli_connect('127.0.0.1','root','root','hcs');
	 //判断数据库是否连接成功
		 if(!$link){
				// echo '数据库连接失败';die;
				echo '<script>alert("数据库连接失败");history.go(-1);</script>';//返回到前一个页面
				die;
		}

		// 设置数据库传输编码 mysqli_query(数据库连接成功的连接对象，数据库操作sql语句)
		mysqli_query($link,'set names utf8');*/

		//加载初始化文件
		include('init.php');

		//固定每页显示的记录数
		$per_page=4;

		//固定显示的页码数,来记录页码数
		$page_num=5;

		//获取页码
		//$cur_page=$_GET['p'];//通过地址栏获取页码参数 当前访问页码数
		/*if($cur_page==''){//判断当刚进入新闻列表页面的时候,页码为空
				$cur_page=1;则将页码强制设置为1,
		}else{
			$cur_page=$_GET['p'];如果页码的值不为空，则等于当前页码数
		}*/
		//或者
		$cur_page=empty($_GET['p'])?1:$_GET['p'];

		//求limit的偏移量
		$offset=($cur_page-1)*$per_page;

		//求数据表总记录数
		$sql ="select count(*) as total from `admin` where endble=0";
		$result=mysqli_query($link,$sql);
		$total_num=mysqli_fetch_assoc($result)['total'];

		//求总页码数并向上取整
		$total_page=ceil($total_num/$per_page);

		//判断
		if($page_num>$total_page)//如果固定页码数大于总页码数
		{
			$page_num=$total_page;//则将固定的页码数设置为总页码数
		}


		//求访问a标签页码的偏移幅 公式=固定页码数/2 向下取整floor()
		$offset_page=floor($page_num/2);//结果值为2

		//计算循环的开始值  当前访问的页码-前后偏移幅
		$star=$cur_page-$offset_page;//结果：-1

		//计算循环的结束值 当前访问的页码+前后偏移幅
		$end=$cur_page+$offset_page;//结果：3

		//判断开始值是否出现负数的优化
		if($star<1){//如果出现负数
			$star=1;//则强制设置为1
			$end=$page_num;//结束值等于固定页码数
		}
		//判断结束页码是否大于总页码数的优化
		if ($end>$total_page) {//当结束页码大于总页码数
			$star=$total_page-$page_num+1;//开始页码=总页码数-固定页码数+1；
			//假设总页码数为20，每页显示5条数据。当显示的最后页码为20的时候，显示了5条页码，20-5=15，但此时应该显示的是16，因此要加1
			$end=$total_page;//则将结束页码强制设置为总页码数
		}

		$pages='';//设置为空，通过for循环拼接页码
		//首页
		$disabled=$cur_page==1?'disabled':'';//当当前页=1的时候则显示禁用的效果
		$href= $cur_page==1?'#':'news_list.php?p=1';//当当前页=1的时候，显示禁用效果的功能
		$pages.='<li class="'.$disabled.'"><a href="'.$href.'"  tabindex="0" class="paginate_button first" id="datatable1_first">首页</a></li>';

		//上一页
		$prev=$cur_page-1;
		$prev_href= $cur_page==1?'#':'news_list.php?p='.$prev;
		$pages.='<li class="'.$disabled.'"><a href="'.$prev_href.'"  tabindex="0" class="paginate_button previous" id="datatable1_previous">上一页</a></li>';


		//动态生成中间5页页码
		 for($i=$star;$i<=$end;$i++){//页码开始值和结束值不能写死，必须是动态生成的
			// 判断当前页码是否等于循环的$i值，是则显示选择状态的li标签
			if($i==$cur_page){
				$pages.='<li class="active"><a tabindex="0">'.$i.'</a></li>';
			}else{
				$pages.='<li><a href="news_list.php?p='.$i.'" tabindex="0"> '.$i.'</a></li>';
			}
		}

		//下一页
		$disabled_q=$cur_page==$total_page?'disabled':'';//当当前页=最后一页的时候则显示禁用的效果
		$next=$cur_page+1;
		$next_href= $cur_page==$total_page?'#':'news_list.php?p='.$next;
		$pages.='<li class="'.$disabled.'"><a href="'.$next_href.'" tabindex="0" class="paginate_button next" id="datatable1_next">下一页</a></li>';

		//最后一页
		$last= $cur_page==$total_page?'#':'news_list.php?p='.$total_page;//当当前页=1的时候，显示禁用效果的功能
		$pages.='<li class="'.$disabled.'"><a href="'.$last.'" tabindex="0" class="paginate_button last" id="datatable1_last">最后一页</a></li>';

// 		//编写查询的sql语句ceil()
 		$sql="select * from `admin` where endble=0 limit $offset,$per_page";//查询没有被删除的数据
// 		//执行sql语句
//		echo $sql;输出sql语句
 		$result=mysqli_query($link,$sql);
 		//print_r($result);die;
		//echo $result->num_rows;die;
		//从结果集获取数据
		/*$data=mysqli_fetch_assoc($result);
		print_r($data);
		echo '<br>';
		$data=mysqli_fetch_assoc($result);
		print_r($data);die;    这样不符合，有多少条数据就得写几个*/

		//使用for循环从结果集逐一获取数据  不是首选
		/*for ($i=0; $i <$result->num_rows ; $i++) {
			//$data=mysqli_fetch_assoc($result);//这样会被覆盖 只显示最后一条数据
			$data[]=mysqli_fetch_assoc($result);//将其变成数组可以获取多条
		}
		print_r($data);die;*/
		//首选使用while循环从结果集逐一获取数据
		//什么时候结束，为什么进入死循环：第一次循环的时候，执行mysqli_fetch_assoc($result)语句,
		//把结果集的数据取出来，存储到变量$arr里面（循环进行的条件：（true、非0整数、有值的变量）循环为真，变量有值，即条件为真）
		//当循环条件为假时，即执行的语句查询的记录数为0的时候循环结束
		while ( $arr=mysqli_fetch_assoc($result)) {
			$data[]=$arr;
		}
		// print_r($data);die;

		//加载后台公共视图
	include('layout.html');
 ?>

